﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pay.DTO {

    /// <summary>
    /// 认证请求
    /// </summary>
    public class VerifyResult {
        public VerifyResult() {
            Data = new VerifyData();
        }
        public VerifyData Data { get; set; }
        public bool Success { get; set; }
        public string Code { get; set; }
    }
    public class VerifyData {
        public VerifyData() {
            verifyToken = new VerifyToken();
            stsToken = new StsToken();
        }

        public VerifyToken verifyToken { get; set; }
        public StsToken stsToken { get; set; }
        public string cloudauthPageUrl { get; set; }
    }
    public class VerifyToken {
        public string Token { get; set; }
        public int DurationSeconds { get; set; }
    }
    public class StsToken {
        public string AccessKeyId { get; set; }
        public string AccessKeySecret { get; set; }
        public string Expiration { get; set; }
        public string EndPoint { get; set; }
        public string BucketName { get; set; }
        public string Path { get; set; }
        public string Token { get; set; }
    }
    /// <summary>
    /// 认证状态
    /// </summary>
    public class VerifyStatusResult {
        public VerifyStatusResult() {
            Data = new VerifyStatusData();
        }
        public VerifyStatusData Data { get; set; }
        public bool Success { get; set; }
    }
    public class VerifyStatusData {
        /// <summary>
        ///  -1： 未认证。表示没有提交记录。
        ///0： 认证中。表示已提交认证，系统正在审核认证资料。
        ///1： 认证通过。表示最近一次提交的认证资料已通过审核，当前认证任务完结。
        ///2： 认证不通过。表示最近一次提交的认证资料未通过审核，当前认证任务还可以继续发起提交。
        /// </summary>
        public int StatusCode { get; set; }
        /// <summary>
        /// 认证过程中所提交的人脸照片和权威数据的比对分，取值范围为[0,100]。
        ///置信度阈值请参考：
        ///误识率0.001%时，对应阈值95。
        ///误识率0.01%时，对应阈值90。
        ///误识率为0.1%时，对应阈值80。
        ///误识率为1%时，对应阈值为60。
        /// </summary>
        public double AuthorityComparisonScore { get; set; }
        /// <summary>
        /// 认证过程中所提交的人脸照片和身份证上的头像的相似程度分值。取值范围为[0,100]，分数越大相似度越高
        /// </summary>
        public double SimilarityScore { get; set; }
        /// <summary>
        /// 认证状态为“认证不通过”时的原因描述。不通过原因包括但不限于以下几种情况：
        ///身份证照片模糊，光线问题造成字体无法识别。
        ///身份证照片信息与认证提交信息不一致。
        ///提交的照片非身份证照片。建议您请按引导提交本人有效身份证照片。
        /// </summary>
        public string AuditConclusions { get; set; }
    }
    /// <summary>
    /// 获取认证资料
    /// </summary>
    public class MaterialsResult {
        public MaterialsResult() {
            Data = new MaterialsData();
        }
        public string Code { get; set; }
        public bool Success { get; set; }
        public MaterialsData Data { get; set; }
    }
    public class MaterialsData {
        /// <summary>
        /// { "detail":"2号大街1号", "address":{ "area":{ "text":"江干区", "value":"330104", "key":"area" }, "province":{ "text":"浙江省", "value":"330000", "key":"province" }, "city":{ "text":"杭州市", "value":"330100", "key":"city" } } }
        /// </summary>
        public string Address { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string FacePic { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IdCardBackPic { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IdCardStartDate { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IdCardExpiry { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IdCardFrontPic { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IdCardType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string IdentificationNumber { get; set; }
        /// <summary>
        /// 李明
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string Sex { get; set; }
        /// <summary>
        /// 汉
        /// </summary>
        public string EthnicGroup { get; set; }

    }

}
